#初始化celery
# import os
# from celery import Celery

# # 必须在实例化celery应用对象之前执行
# os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'demo038.settings')
#
# # 实例化celery应用对象
# app = Celery('demo0328')
# # 指定任务的队列名称
# app.conf.task_default_queue = 'Celery'
# # 也可以把配置写在django的项目配置中
# app.config_from_object('django.conf:settings', namespace='CELERY') # 设置django中配置信息以 "CELERY_"开头为celery的配置信息
# # 自动根据配置查找django的所有子应用下的tasks任务文件
# app.autodiscover_tasks()

# proj/celery.py

import os
from celery import Celery
# 修改的配置文件
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'DjangoProject1.settings.dev')
# 改名
app = Celery('DjangoProject1')  # 初始化
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()  # 自动根据配置查找django的所有子应用下的tasks任务文件

# 定时任务配置
from celery.schedules import crontab
"""
 "任务配置名":{
    "task":"任务函数名",
    "时间":"时间配置"
 }
"""
app.conf.beat_schedule = {
    # 'add-every-30-seconds': {
    #     'task': 'home.tasks.test_time',  # 那个文件下的函数
    #     'schedule': 30.0,  # 设置时间 可以是秒数 可以是周几 可以是几点
    #     # 'schedule': crontab(hour=, minute=0), # 每天凌晨2点
    #     # 'schedule': crontab(hour=9, minute=0, day_of_week=1), # 每周周一9点
    #     # 'args': ('张三',),  # 任务函数需要的参数 如果没有参数则不需要
    # },
    'update_every-30-minutes': {
        'task': 'payments.tasks.order_timeout',
        'schedule': crontab(minute='*')  # 这是每隔一分钟
    }
}